﻿#ifndef MYQSQLFACTORY_H
#define MYQSQLFACTORY_H
/******************************************************************************
  @Project Name  : 04TestConnectMysql
  @File Name     : myqsqlfactory.h
  @Version       : 1.0
  @Function      : to be determined
  @Author        : unishuai
  @Date          : 2024-05-22
******************************************************************************/
#include<QObject>
#include<iostream>
#include <QSqlDatabase>
#include<QSettings>
#include <QSqlError>
#include<QMessageBox>

#include <QDateTime>
#include <QSqlQuery>
#include<QtDebug>

#include <entity/simsysteminfo.h>
class MyQSqlFactory : public QObject
{
    Q_OBJECT
public:
    static MyQSqlFactory &Instance();
    //类对象初始化
    bool Init(void);

    //建立数据库连接
    void initialSqlCon();
    //创建表格
    void createTable();
    //向创建的表格中插入数据
    void insertSimDataTest();
    //进行仿真的时候插入数据
    void insertSimDataWithNoMotionInfo(SimSystemInfo sysInfo);
    //插入仿真和动平台的位姿数据
    void insertSimData(SimSystemInfo sysInfo);
    //读取仿真的数据
    bool readSimData(QString historyTableName);


    //检查表是否存在
    bool checkIfTableExists(const QString& tableName);
    //检查表格是否为空
    bool isTableEmpty(const QString& tableName);
    //删除表格
    bool dropTable(const QString& tableName);

    QString getTableName() const;
    void setTableName(const QString &value);

    QSqlDatabase getDb() const;
    void setDb(const QSqlDatabase &db);

    QSqlQuery getQuery() const;
    void setQuery(const QSqlQuery &value);

private:
    MyQSqlFactory(QObject *parent = nullptr);
    //是否进行了初始化
    bool m_IsInit;
    //数据库表格的名字
    QString tableName;
    QSqlDatabase m_db;
    QSqlQuery query;


signals:

public slots:
};

#endif // MYQSQLFACTORY_H
